<?php
class Periodo extends Doctrine_Record {
    public function setTableDefinition() {
        $this->setTableName('periodo');
        $this->hasColumn('mes', 'integer',2);
        $this->hasColumn('year', 'integer',4);
    }
    
    public static function nuevo ($fecha) {
        $f = explode('-', $fecha);
        if (!self::contar($fecha)) {
            $periodo = new Periodo();
            $periodo->year = $f[2];
            $periodo->mes = $f[1];
            $periodo->save();
        }
    }
    
    public static function borrar ($fecha) {
        $f = explode('-', $fecha);
        if (self::contar($fecha)==1) {
            $periodo = Doctrine::getTable('periodo')->findOneByYearAndMes($f[2], $f[1]);
            $periodo->delete();
        }
    }
    
    public static function contar($fecha) {
        $f  = explode('-', $fecha);
        $q = Doctrine_Query::create()
            ->select('count(p.id) as total')
            ->from('Periodo p')
            ->where('p.year = '.$f[2])
            ->andWhere('p.mes = '.$f[1]);        
        $total = $q->execute();
        return ($total->count())?$total[0]->total:0;
    }
    
    public static function years () {
        $q = Doctrine_Query::create()
            ->select('p.year')
            ->from('Periodo p')
            ->groupBy('p.year');        
        return $q->execute();
    }
    
    public static function meses ($year) {
        $q = Doctrine_Query::create()
            ->select('p.mes')
            ->from('Periodo p')
            ->where('p.year = "'.$year.'"');        
        return $q->execute();
    }

    public static function yearsToSelect () {
        $html = '<select id="selectYear" name="year">';
        $periodos = self::years();
        foreach ($periodos as $periodo) {
            $html .= '<option value="'.$periodo->year.'">'.$periodo->year.'</option>';
        }
        $html .= '</select>';
        return $html;
    }
    
    public static function mesesToSelect ($year) {
        $mesesString = array('', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
        $html = '<select id="selectMes" name="mes">';
        $periodos = self::meses($year);
        foreach ($periodos as $periodo) {
            $html .= '<option value="'.$periodo->mes.'">'.$mesesString[$periodo->mes].'</option>';
        }
        $html .= '</select>';
        return $html;
    }
    
}
?>